home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Environments / Clean 1.2.4 / IOInterface / menuDef.icl < prev    next >
Encoding:
Modula Implementation  |  1997-04-23  |  1.5 KB  |  41 lines  |  [TEXT/3PRM]

  1. implementation module menuDef;
  2.  
  3. //    MenuDefinitions:
  4.  
  5. import    commonDef;
  6.  
  7. ::    MenuDef *s *io
  8.     =    PullDownMenu MenuId MenuTitle SelectState [MenuElement s io];
  9. ::    MenuElement *s *io
  10.     =    MenuItem        MenuItemId    ItemTitle KeyShortcut SelectState            (MenuFunction s io)
  11.     |    CheckMenuItem    MenuItemId    ItemTitle KeyShortcut SelectState MarkState (MenuFunction s io)
  12.     |    SubMenuItem        MenuId        ItemTitle              SelectState    [MenuElement  s io]
  13.     |    MenuItemGroup    MenuItemGroupId                                    [MenuElement  s io]
  14.     |    MenuRadioItems    MenuItemId                                        [RadioElement s io]
  15.     |    MenuSeparator;
  16. ::    RadioElement *s *io
  17.     =    MenuRadioItem MenuItemId ItemTitle KeyShortcut SelectState (MenuFunction s io);
  18. ::    MenuFunction *s *io
  19.     :== s -> *(io -> (s, io));
  20. ::    MenuId              :== Int;
  21. ::    MenuTitle        :== String;
  22. ::    MenuItemId          :== Int;
  23. ::    MenuItemGroupId    :== Int;
  24. ::    KeyShortcut        =  Key KeyCode | NoKey;
  25.  
  26.  
  27. MenuDef_MenuId :: !(MenuDef s io) -> MenuId;
  28. MenuDef_MenuId (PullDownMenu id _ _ _) = id;
  29.  
  30. MenuDef_SelectState :: !(MenuDef s io) -> SelectState;
  31. MenuDef_SelectState (PullDownMenu _ _ able _) = able;
  32.  
  33. MenuDef_SetAbility :: !(MenuDef s io) !SelectState -> MenuDef s io;
  34. MenuDef_SetAbility (PullDownMenu id name _ items) able` = PullDownMenu id name able` items;
  35.  
  36. MenuDef_Elements :: !(MenuDef s io) -> [MenuElement s io];
  37. MenuDef_Elements (PullDownMenu _ _ _ items) = items;
  38.  
  39. MenuDef_ReplaceElements :: !(MenuDef s io) ![MenuElement s io] -> MenuDef s io;
  40. MenuDef_ReplaceElements (PullDownMenu id name able _) items = PullDownMenu id name able items;
  41.